﻿using System.Collections.Generic;
using System.Data;


namespace CoreEx.Database.Client
{
    /// <summary>
    /// Represents a class that is capable of caching parameters 
    /// using for invoking stored procedures.
    /// </summary>
    public interface IParameterCache
    {
        /// <summary>
        /// Gets a list of parameters that applies to the <paramref name="procedureName"/>
        /// </summary>
        /// <param name="procedureName">The name of the stored procedure.</param>
        /// <returns>A <see cref="IEnumerable{T}"/> that contains the parameters for the stored procedure.</returns>
        IEnumerable<IDataParameter> GetParameters(string procedureName);
        
        IParameterExtractor ParameterExtractor { get; set; }
    }
}